package com.sanpu.kxe.rxservice.interfaces;

import com.sanpu.kxe.rxservice.MetaBean;

import java.util.Map;

import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
import rx.Observable;

/**
 * Description：交易模块接口定义
 * Created by 薛勇军 on 2018/8/8.
 */

public interface TradeService {

    /**
     * 我的返佣列表
     * @param param 请求参数
     * @return
     */
    @FormUrlEncoded()
    @POST("app/client/income/myHstRebateList.html")
    Observable<MetaBean> myHstRebateList(@FieldMap Map<String, String> param);

    /**
     * 获取返佣类型分类
     * @param param 请求参数
     * @return
     */
    @FormUrlEncoded()
    @POST("app/client/income/getRebateType.html")
    Observable<MetaBean> getRebateType(@FieldMap Map<String, String> param);

    /**
     * 提现
     * @param param 请求参数
     * @return
     */
    @FormUrlEncoded()
    @POST("app/client/pay/withdraw.html")
    Observable<MetaBean> userWithdraw(@FieldMap Map<String, String> param);

    /**
     * 获取当前的提现限额
     * @param param 请求参数
     * @return
     */
    @FormUrlEncoded()
    @POST("app/client/income/withdrawDictinary.html")
    Observable<MetaBean> withdrawDictinary(@FieldMap Map<String, String> param);

    /**
     * 账单列表
     * @param param 请求参数
     * @return
     */
    @FormUrlEncoded()
    @POST("app/client/index/billList.html")
    Observable<MetaBean> getBillList(@FieldMap Map<String, String> param);

    /**
     * 提现账单列表
     * @param param 请求参数
     * @return
     */
    @FormUrlEncoded()
    @POST("app/client/index/withDrawBillList.html")
    Observable<MetaBean> withDrawBillList(@FieldMap Map<String, String> param);

    /**
     * 获取账单分类
     * @param param 请求参数
     * @return
     */
    @FormUrlEncoded()
    @POST("app/client/index/getBillType.html")
    Observable<MetaBean> getBillType(@FieldMap Map<String, String> param);

    /**
     * 收款渠道列表
     * @param param 请求参数
     * @return
     */
    @FormUrlEncoded()
    @POST("app/client/pay/appCnlConfList.html")
    Observable<MetaBean> appCnlConfList(@FieldMap Map<String, String> param);

    /**
     * 获取APP通道配置银行限额列表
     * @param param 请求参数
     * @return
     */
    @FormUrlEncoded()
    @POST("app/client/pay/findAppCnlConfBankSupportDetailList.html")
    Observable<MetaBean> findAppCnlConfBankSupportDetailList(@FieldMap Map<String, String> param);

    /**
     * 添加信用卡支持银行
     * @param param 请求参数
     * @return
     */
    @FormUrlEncoded()
    @POST("app/client/bank/appBaseBank.html")
    Observable<MetaBean> appBaseBank(@FieldMap Map<String, String> param);

    /**
     * 生成支付订单
     * @param param 请求参数
     * @return
     */
    @FormUrlEncoded()
    @POST("app/client/pay/userPayment.html")
    Observable<MetaBean> userPayment(@FieldMap Map<String, String> param);

    /**
     * 快捷native收款广告
     * @param param
     * @return
     */
    @FormUrlEncoded()
    @POST("app/client/adcolumn/lvlFee.html")
    Observable<MetaBean> lvlFee(@FieldMap Map<String, String> param);

    /**
     * 获取归属地和话费流量充值套餐信息（首页=>话费流量）
     * @param param
     * @return
     */
    @FormUrlEncoded()
    @POST("app/client/mobile/getRechargeDetail.html")
    Observable<MetaBean> getRechargeDetail(@FieldMap Map<String, String> param);

    /**
     * 6.9.2话费充值（首页=>话费流量=>立即充值）
     * @param param
     * @return
     */
    @FormUrlEncoded()
    @POST("app/client/mobile/recharge.html")
    Observable<MetaBean> recharge(@FieldMap Map<String, String> param);

    /**
     * 统一下单
     * @param param
     * @return
     */
    @FormUrlEncoded()
    @POST("app/client/pay/payOrder.html")
    Observable<MetaBean> payOrder(@FieldMap Map<String, String> param);

    /**
     * 6.7.4获取支付状态
     * @param param
     * @return
     */
    @FormUrlEncoded()
    @POST("app/client/pay/findTranPayStatus.html")
    Observable<MetaBean> findTranPayStatus(@FieldMap Map<String, String> param);

    /**
     * 我的分红
     * @param param
     * @return
     */
    @FormUrlEncoded()
    @POST("app/client/income/myDividend.html")
    Observable<MetaBean> myDividend(@FieldMap Map<String, String> param);
}
